package model

import (
	"ginblog/utils/errmsg"
	"github.com/jinzhu/gorm"
)

type Comment struct {
	User User `gorm:"foreignkey:Uid"`
	BaseModel
	Aid     int    `json:"aid,omitempty"`
	Uid     int    `json:"uid,omitempty"`
	Content string `json:"content,omitempty"`
}


// 新增评论
func CreateComment(data *Comment)int  {
	err := db.Create(&data).Error
	if err !=nil {
		return errmsg.ERROR
	}
	return errmsg.SUCCSE
}


//  查询文章的评论列表
func GetCommentList(aid int, pageSize int, pageNum int)([]Comment,int) {
	var commentList []Comment

	err = db.Debug().Preload("User", func(db *gorm.DB) *gorm.DB {
		return db.Select("username,id,created_at")
	}).Limit(pageSize).Offset((pageNum-1)*pageSize).Where("aid = ?", aid).Select("id,uid,content,created_at").Find(&commentList).Error
	if err != nil && err != gorm.ErrRecordNotFound{
		return nil,errmsg.ERROR
	}

	return commentList,errmsg.SUCCSE
}


//  查询单个评论id，看是否存在这个评论  Comment是返回评论的模型
func GetCommentPraiseInfo(id int)(Comment,int)  {
	var comment Comment // 实例 article的模型
	err := db.Debug().Where("id = ?", id).First(&comment).Error
	if err != nil { // 错误
		return comment,errmsg.ERROR_COMMENT_NOT_EXIST
	}
	return comment,errmsg.SUCCSE
}

